{
 "metadata": {
  "name": "",
  "signature": "sha256:251a353f7ce5068dce227758bf496573f0d84ffee1801e96e5c4a0d8548f5d4a"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Use train with regularization on feed forward neurol network"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "1 Explanation of regularization"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Artificial neural networks are trained by minimizing a cost function that measures the mismatch between observations (targets) and network predictions. These cost functions can take many forms, including:\n",
      "\n",
      "$\\hspace{3 cm} J(w) = (y-y_p(w))^2 \\hspace{6 cm}$      for predicting real values\n",
      "\n",
      "$\\hspace{3 cm}J(w) = y \\ln (y_p(w)) + (1-y) \\ln(1-y_p(w)) \\hspace{3 cm}$    for classification\n",
      "\n",
      "* $J$ is the cost function\n",
      "* $w$ are the weights connecting neurons in the network\n",
      "* $y$ are the observations or target values\n",
      "* $y_p$ are the network predictions given the inputs and weights\n",
      "\n",
      "\n",
      "\n",
      "We regularize the cost function, $J_{reg}(w)$ by including an additional term that penalizes large values of $w$.\n",
      "\n",
      "$\\hspace{3 cm} J_{reg}(w) = J(w) + \\lambda w^2$"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "2 Preparing data and int network"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import neurolab as nl\n",
      "import numpy as np\n",
      "\n",
      "# Create train samples\n",
      "x = np.linspace(-7, 7, 20)\n",
      "y = np.sin(x) * 0.5\n",
      "\n",
      "size = len(x)\n",
      "\n",
      "inp = x.reshape(size,1)\n",
      "tar = y.reshape(size,1)\n",
      "\n",
      "# Create network with 2 layers and random initialized\n",
      "net = nl.net.newff([[-7, 7]],[5, 1])\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "3 Train with regularization"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "For train with regularization need addition rr (regularization ratio) parameter to train function\n",
      "\n",
      "rr must be between {0, 1}"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Train network\n",
      "error = net.train(inp, tar, epochs=500, show=100, goal=0.02, rr=0.5)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "4 Simulate and plot results"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Simulate network\n",
      "out = net.sim(inp)\n",
      "\n",
      "# Plot result\n",
      "import pylab as pl\n",
      "pl.subplot(211)\n",
      "pl.plot(error)\n",
      "pl.xlabel('Epoch number')\n",
      "pl.ylabel('error (default SSE)')\n",
      "\n",
      "x2 = np.linspace(-6.0,6.0,150)\n",
      "y2 = net.sim(x2.reshape(x2.size,1)).reshape(x2.size)\n",
      "\n",
      "y3 = out.reshape(size)\n",
      "\n",
      "pl.subplot(212)\n",
      "pl.plot(x2, y2, '-',x , y, '.', x, y3, 'p')\n",
      "pl.legend(['train target', 'net output'])\n",
      "pl.show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nUkoppZRyrv8H9UcSktm5T6MAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f0e0c092c90>"
       ]
      }
     ],
     "prompt_number": 10
    }
   ],
   "metadata": {}
  }
 ]
}